home *** CD-ROM | disk | FTP | other *** search
- #ifndef H_OOFVIEW
- #define H_OOFVIEW
-
- // COPYRIGHT 1994 A.D. Software, All rights reserved
-
- // public layer of OOFILE database - database views
-
- // NOTE inline definitions included at end of this header file
-
- #include "oof1.hpp"
-
- class dbSource : public dbClass
- {
- public:
- virtual ~dbSource() {};
- virtual void start()=0;
- virtual bool more()=0;
- virtual void next()=0;
- virtual unsigned long count()=0;
- virtual bool empty();
- virtual void saveRecord()=0;
- virtual void newRecord()=0;
- virtual dbSource* clone() const=0;
- virtual bool gotoRelativeRecord(unsigned long)=0;
- };
-
-
-
-
-
- class dbView : public OOF_Dictionary {
- public:
- dbView(dbTable*);
- dbView(dbTable&);
- dbView(dbRelRefBase*);
- dbView(dbRelRefBase&);
- dbView(const dbView&);
- const dbView& operator=(const dbView&);
- ~dbView();
-
- // shortcut specialised append
- // eg: dbView(People) << LastName << Othernames
-
- dbView& append(dbField&);
- dbView& append(dbField*);
- dbView& operator<<(dbField&);
- dbView& operator<<(dbField*);
-
- dbSource* source() const;
- dbField& field(unsigned int);
-
- // data storage
- private:
- dbSource* mSource; // owned
- };
- ostream& operator<<(ostream& os, dbView& theView);
-
-
-
- class dbSourceTable : public dbSource
- {
- public:
- dbSourceTable(dbTable* tbl) :
- mTable(tbl)
- {};
- virtual ~dbSourceTable() {};
- virtual void start();
- virtual bool more();
- virtual void next();
- virtual unsigned long count();
- virtual void saveRecord();
- virtual void newRecord();
- virtual dbSource* clone() const;
- virtual bool gotoRelativeRecord(unsigned long);
- private:
- dbTable* mTable;
- };
-
-
- class dbSourceRelTable : public dbSource
- {
- public:
- dbSourceRelTable(dbRelRefBase* tblRef) :
- mTableRef(tblRef)
- {};
- virtual ~dbSourceRelTable() {};
- virtual void start();
- virtual bool more();
- virtual void next();
- virtual unsigned long count();
- virtual void saveRecord();
- virtual void newRecord();
- virtual dbSource* clone() const;
- virtual bool gotoRelativeRecord(unsigned long);
- private:
- dbRelRefBase* mTableRef;
- };
-
-
- // include inline definitions
- #include "oofview.inl"
- #endif
-
-
-